package base.design.priciple.test1SingleResponsibility;


public class SingleResponsibility3 {
    public static void main(String[] args) {
        Vehicle2 vehicle=new Vehicle2();
        vehicle.run("汽车");
        vehicle.runAir("飞机");
        vehicle.runWater("轮船");
    }
}

/**
 * 方式3 ： 没有对类Vehicle2 做大的修改只是对 Vehicle2 新增了几个方法，
 * 没有在类这个级别上遵守单一职责原则，但是在方法级别上遵守了单一职责原则。
 * （假如用同一个方法的化，我们可能需要传入一个标志，做大量的if else 判断了，这种非常不好。而且，假如
 * 有一个交通工具有变更的时候，比如，汽车只有在某个时间点才能在公路上跑的话，我们在方法中的改动，可能影响
 * 其他的交通工具，而方法级别的单一职责原则，只用该 run 这个方法，不用该其他方法，不会影响其他的交通工具）
 * 所以我们发现，单一职责 其实就是各行其职。
 */
class Vehicle2 {//同一个包下的类不允许有同名的
    void run(String vehicle){
        System.out.println(vehicle +" 在公路上跑");
    }

    void runAir(String vehicle){
        System.out.println(vehicle +" 在天空飞");
    }

    void runWater(String vehicle){
        System.out.println(vehicle +" 在水上上跑");
    }
}